﻿using Abp.Application.Services;
using FwProject.ShopApplication;
using FwProject.ShoppingMall.EventAdvertising;
using System;
using System.Collections.Generic;
using System.Text;
using System.Threading.Tasks;
using X.PagedList;

namespace FwProject.EventAdvertising.Dto
{
    /// <summary>
    /// 优惠券管理
    /// </summary>
   public interface IShopCouponAppService : IApplicationService
    {
        #region 优惠券管理
        /// <summary>
        /// 创建一个优惠券
        /// </summary>
        /// <param name="Input"></param>
        /// <returns></returns>
        Task<Guid> CreateShopAdLocation(ShopCouponInput Input);
        /// <summary>
        /// 获取一个优惠券
        /// </summary>
        /// <param name="Id"></param>
        /// <returns></returns>
        Task<ShopCouponDto> GetByIdShopCoupon(Guid Id);


        /// <summary>
        /// 修改一个优惠券
        /// </summary>
        /// <param name="Id"></param>
        /// <param name="Input"></param>
        /// <returns></returns>
        Task EditShopAdLocation(Guid Id, ShopCouponInput Input);
        /// <summary>
        /// 删除一个优惠券
        /// </summary>
        /// <param name="Id"></param>
        /// <returns></returns>
        Task DeleteAdLocation(Guid Id);
        /// <summary>
        /// 分页获取优惠券
        /// </summary>
        /// <param name="page"></param>
        /// <param name="pageSize"></param>
        /// <param name="CouponTitile"></param>
        /// <param name="beginTime"></param>
        /// <param name="endTime"></param>
        /// <param name="coupontype"></param>
        /// <param name="usecoupon"></param>
        /// <returns></returns>
        Task<IPagedList<ShopCouponDto>> GetPageList(int page, int pageSize, string CouponTitile, DateTime? beginTime, DateTime? endTime, CouponType? coupontype, UseCoupon? usecoupon);
        #endregion

        #region 后台管理
        /// <summary>
        /// 
        /// </summary>
        /// <param name="page"></param>
        /// <param name="limit"></param>
        /// <returns></returns>
        Task<LayerDataBaseDto> GetShopCouponLayerDataAsync(int page, int limit);
        #endregion
    }
}
